def parse_support_records(text):
    """
    解析技术支持记录文本，生成JSON格式列表

    参数：
    - text: 原始文本，每行格式为"系统\t分类\t描述"

    返回：
    - JSON格式字符串
    """
    import json

    records = []

    # 按行分割文本
    lines = text.strip().split('\n')

    for line in lines:
        # 跳过空行
        if not line.strip():
            continue

        # 按制表符分割
        parts = line.split('\t')

        # 确保有3个部分
        if len(parts) >= 3:
            system = parts[0].strip()
            category = parts[1].strip()
            description = parts[2].strip()

            record = {
                "系统": system,
                "分类": category,
                "描述": description
            }
            records.append(record)

    return records  # 返回列表而不是JSON字符串


def save_records_append(records, filename='datas.json'):
    """
    追加保存记录到JSON文件

    参数：
    - records: 记录列表
    - filename: 文件名
    """
    import json
    import os

    # 如果文件存在，读取现有数据
    if os.path.exists(filename):
        try:
            with open(filename, 'r', encoding='utf-8') as f:
                existing_records = json.load(f)
                # 确保读取的是列表
                if not isinstance(existing_records, list):
                    existing_records = []
        except (json.JSONDecodeError, ValueError):
            # 如果文件损坏或为空，从空列表开始
            existing_records = []
    else:
        existing_records = []

    # 合并记录
    existing_records.extend(records)

    # 写入文件
    with open(filename, 'w', encoding='utf-8') as f:
        json.dump(existing_records, f, ensure_ascii=False, indent=4)

    print(f"✅ 已追加 {len(records)} 条记录到 {filename}")
    print(f"📊 文件当前共有 {len(existing_records)} 条记录")


def save_records_overwrite(records, filename='datas.json'):
    """
    覆盖保存记录到JSON文件

    参数：
    - records: 记录列表
    - filename: 文件名
    """
    import json

    with open(filename, 'w', encoding='utf-8') as f:
        json.dump(records, f, ensure_ascii=False, indent=4)

    print(f"✅ 已保存 {len(records)} 条记录到 {filename} (覆盖模式)")


# 使用示例
if __name__ == "__main__":
    # 原始文本数据
    with open('data.txt', 'r', encoding='utf-8') as f:
        text = f.read()

    # 解析记录
    records = parse_support_records(text)

    # 方式1：追加写入（推荐）
    save_records_append(records)

    # 方式2：覆盖写入
    # save_records_overwrite(records)

    # 打印JSON格式预览
    import json

    print("\n" + "=" * 50)
    print("JSON格式预览：")
    print(json.dumps(records[:3], ensure_ascii=False, indent=4))  # 只显示前3条
    print("...")
